﻿// CFalseDialog.cpp: 实现文件
//

#include "pch.h"
#include "简易任务管理器_Tab控件.h"
#include "afxdialogex.h"
#include "CFalseDialog.h"


// CFalseDialog 对话框

IMPLEMENT_DYNAMIC(CFalseDialog, CDialogEx)

CFalseDialog::CFalseDialog(CWnd* pParent /*=nullptr*/)
	: CDialogEx(IDD_DIALOG1, pParent)
{

}

CFalseDialog::~CFalseDialog()
{
}

void CFalseDialog::DoDataExchange(CDataExchange* pDX)
{
	CDialogEx::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_LIST2, m_list1);
}


BEGIN_MESSAGE_MAP(CFalseDialog, CDialogEx)
	ON_WM_ERASEBKGND()
	ON_WM_SIZE()
END_MESSAGE_MAP()


// CFalseDialog 消息处理程序


BOOL CFalseDialog::OnEraseBkgnd(CDC* pDC)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值

	CRect rect;
	GetClientRect(&rect);

	//设置颜色：
	pDC->FillSolidRect(&rect, RGB(255, 255, 255));

	return true;
	//return CDialogEx::OnEraseBkgnd(pDC);
}


BOOL CFalseDialog::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	// TODO:  在此添加额外的初始化
	//设置list风格：
	m_list1.ModifyStyle(0, LVS_REPORT | LVS_SINGLESEL | LVS_SHOWSELALWAYS | LVS_ALIGNLEFT
		| WS_VSCROLL | WS_BORDER);
	//设置整行选取：
	m_list1.SetExtendedStyle(LVS_EX_FULLROWSELECT);

	m_list1.InsertColumn(0, L"序号", LVCFMT_LEFT, 50);
	m_list1.InsertColumn(1, L"窗口标题", LVCFMT_LEFT, 200);
	m_list1.InsertColumn(2, L"窗口句柄", LVCFMT_LEFT, 200);
	m_list1.InsertColumn(3, L"窗口类型", LVCFMT_LEFT, 200);


	//枚举窗口并显示：
	CWnd* pwnd = AfxGetMainWnd()->GetWindow(GW_HWNDFIRST);		//拿到主窗口平级的第一个窗口

	int i = 0;
	while (pwnd)
	{
		//序号
		CString str;
		str.Format(L"%d", i + 1);
		m_list1.InsertItem(i, str);


		//窗口标题
		pwnd->GetWindowText(str);
		m_list1.SetItemText(i, 1, str);

		//窗口句柄
		str.Format(L"%#x", pwnd->m_hWnd);
		m_list1.SetItemText(i, 2, str);

		//窗口类型
		TCHAR classname[256];

		::GetClassName(pwnd->m_hWnd, classname, 256);
		m_list1.SetItemText(i, 3, str);


		pwnd = pwnd->GetWindow(GW_HWNDNEXT);	//获取下一个窗口


		i++;
	}


	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}


void CFalseDialog::OnSize(UINT nType, int cx, int cy)
{
	CDialogEx::OnSize(nType, cx, cy);

	// TODO: 在此处添加消息处理程序代码
	if (m_list1.GetSafeHwnd())
	{
		m_list1.MoveWindow(0,0, cx, cy);
	}

}
